
#pragma once
#include "intraface\FaceAlignment.h"
#include "FaceAlignmentWraper.h"
using namespace INTRAFACE;

#ifndef __FACECORECALLER__
#define __FACECORECALLER__


#ifdef UNMANAGEDDLL_EXPORTS
#define UNMANAGEDDLL_API __declspec(dllexport)
#else
#define UNMANAGEDDLL_API __declspec(dllimport)
#endif

//#define POINT_SIZE 51
//
//
//typedef struct {
//	int left;
//	int top;
//	int right;
//	int bottom;
//} FaceFeatureRectangle;
//
//typedef struct
//{
//	int x;
//	int y;
//} FaceFeaturePoint;
//
//typedef struct {
//	float roll;
//	float yaw;
//	float pitch;
//	FaceFeaturePoint points[POINT_SIZE];
//
//} FacePointsModel;

#ifdef __cplusplus
extern "C" {
#endif
	extern UNMANAGEDDLL_API FaceAlignmentWraper* CreateFacePointsEngine();
	//extern UNMANAGEDDLL_API FaceAlignmentWraper* CreateFacePointsEngine(const char*);
	extern UNMANAGEDDLL_API float CalculateFacePoints(FaceAlignmentWraper* engine, unsigned char* imgBgr24, int width,
		int height, int widthstep, FaceFeatureRectangle &faceRect, FacePointsModel* pointModel);

	//extern UNMANAGEDDLL_API bool CalculateHeadPose(FaceAlignmentWraper* engine, unsigned char* imgBgr24, int width,
	//	int height, int widthstep, FacePointsModel* pointModel);

	extern UNMANAGEDDLL_API void FreeFacePointsEngine(FaceAlignmentWraper* engine);

#ifdef __cplusplus
}
#endif

#endif

